/*
 * Created on 30.01.2004
 *
 * To change the template for this generated file go to
 * Window&gt;Preferences&gt;Java&gt;Code Generation&gt;Code and Comments
 */
package ro.qi.framework.sys.entities.components;

import org.w3c.dom.NodeList;

import ro.qi.framework.sys.entities.exception.ComponentException;

/**
 * EntityComponent
 * 
 * Defines the methos which must be implemented by a entity component
 * 
 * @author Vlad Lepadatu
 */
public interface EntityComponent {

	/** Check if the given value can be set on this ocmponent
	 * @param value						The value to be checked
	 * @throws ComponentException		If the value cannot be set on this component
	 */
	public void verify(Object value) throws ComponentException;

	/** Set the given value
	 * @param value						The value
	 * @throws ComponentException		If the value cannot be set on this component
	 */
	public void setValue(Object value) throws ComponentException;

	/** Returns the value of this component
	 * @return							The value of this component
	 */
	public Object getValue();

	/** Set the configuration for this component
	 * The configuration of a component is everything the parser finds under the component's tag
	 * @param config					The configuration
	 */
	public void setConfig(NodeList config);

}
